# -*- coding: utf-8 -*-
import re
import sys
from lxml import etree
from cStringIO import StringIO
from htmlentitydefs import name2codepoint
from django.conf import settings
from opengov.govtrack.util import *
import textile
import codecs

def transform_utredning(filepath):
    #TBD
    pass


def transform_komdir(filepath):
    """Städa upp HTML-fragment för inkludering på webbsida."""
    try:
        print(u"Transformerar %s" % filepath)
        # Extrahera HTML ur kommittédirektiv och spara fragment
        filename = filepath.split("/")[-1]
        f = codecs.open(filepath, "r", "iso-8859-1")
        filedata = f.read()
        f.close()

        # Hugg av överflödig html
        match = re.search("<hr>(.*)</pre>\n</pre>", filedata, re.DOTALL)
        segment = u""
        if match:
            segment = htmlentitydecode(match.groups()[0])

        # fixa html i segment
        segment = segment.replace("<p>","")

        # normalisera radbrytningar
        segment = re.sub(r"\r\n|\r|\n", "\n", segment)

        # paragrafer
        paras = re.split('\n{2,}', segment)

        ## ta bort radbrytningar
        paras = [u"<p>%s</p>" % p.replace("\n", " ") for p in paras]
        segment = u"\n\n".join(paras)

        # Grundl rubriker
        segment = segment.replace(u"<p>Sammanfattning av uppdraget</p>", "<h2 id=\"sammanfattning\">Sammanfattning av uppdraget</h2>")
        segment = segment.replace(u"<p>Sammanfattning</p>", "<h2 id=\"sammanfattning\">Sammanfattning</h2>")
        segment = segment.replace(u"<p>Bakgrund</p>", "<h2 id=\"bakgrund\">Bakgrund</h2>")
        segment = segment.replace(u"<p>Uppdraget</p>", "<h2 id=\"uppdrag\">Uppdraget</h2>")
        segment = segment.replace(u"<p>Utredningsbehov</p>", "<h2 id=\"behov\">Utredningsbehov</h2>")
        segment = segment.replace(u"<p>Redovisning av uppdraget</p>", "<h2 id=\"redovisning\">Redovisning av uppdraget</h2>")
        segment = segment.replace(u"<p>Samråd och redovisning av uppdraget</p>", u"<h2 id=\"redovisning\">Samråd och redovisning av uppdraget</h2>")
        segment = segment.replace(u"<p>Arbetssätt och redovisning av uppdraget</p>", u"<h2 id=\"redovisning\">Arbetssätt och redovisning av uppdraget</h2>")
        segment = segment.replace(u"<p>Arbetsformer m.m.</p>", u"<h2 id=\"redovisning\">Arbetsformer m.m.</h2>")
        segment = segment.replace(u"<p>Utredningens nuvarande uppdrag</p>", u"<h2 id=\"nuvarande\">Utredningens nuvarande uppdrag</h2>")
        segment = segment.replace(u"<p>Behovet av ytterligare utredning</p>", u"<h2>Behovet av ytterligare utredning</h2>")

        # SFS-länkar
        segment = re.sub("\((\d\d\d\d:\d*)\)", "<a href=\"https://lagen.nu/\\1\">(\\1)</a>", segment)

        # spara i dokumentkatalog
        outfile = settings.GOVTRACK_DOCS + "/komdir/" + filename
        f = open(outfile, "w")
        f.write(segment.encode("utf8"))
        f.close()

        print(u"Skrev %s" % outfile)
        return outfile

    except:
        #Elogger.error(u"   Fel! %s" % sys.exc_info()[0])
        print "Fel i transform komdir", sys.exc_info()[0]
        return None
